home *** CD-ROM | disk | FTP | other *** search
/ The Programmer Disk / The Programmer Disk (Microforum).iso / xpro / pascal / pro5 / upperstr.pas < prev    next >
Pascal/Delphi Source File  |  1986-04-24  |  2KB  |  32 lines

  1. (********************************************************************)
  2. (* THIS PROCEDURE WILL CONVERT ALL LOWER CASE CHARS TO UPPER CASE   *)
  3. (* CHARS FOR ALL CHARS WITHIN THE STRING                            *)
  4. (* INPUT        : NONE                                              *)
  5. (* INPUT/OUTPUT : DATA-STRING : Work_String                         *)
  6. (* OUTPUT       : NONE                                              *)
  7. (* USES         : NO SIDE EFFECTS                                   *)
  8. (* CALLS        : NONE                                              *)
  9. (* ERRORS       : NONE                                              *)
  10. (* GLOBAL VARS  : NONE                                              *)
  11. (* SUBJECT      : STRINGS, CONVERT TO UPPER CASE                    *)
  12. (* DOMAIN       : PUBLIC                              LEVEL : 000   *)
  13. (********************************************************************)
  14.  
  15. PROCEDURE Upper_Case                ( VAR TempString : Work_String ) ;
  16.  
  17. BEGIN
  18.    INLINE
  19.        ($C4/$BE/TempString/    (*         LES  DI,TempString [BP]   *)
  20.         $26/$8A/$0D/           (*         MOV  CL,ES:[DI]           *)
  21.         $FE/$C1/               (*         INC  CL                   *)
  22.         $FE/$C9/               (* L1:     DEC  CL                   *)
  23.         $74/$13/               (*         JZ   L2                   *)
  24.         $47/                   (*         INC  DI                   *)
  25.         $26/$80/$3D/$61/       (*         CMP  ES:BYTE PTR [DI],'a' *)
  26.         $72/$F5/               (*         JB   L1                   *)
  27.         $26/$80/$3D/$7A/       (*         CMP  ES:BYTE PTR [DI],'z' *)
  28.         $77/$EF/               (*         JA   L1                   *)
  29.         $26/$80/$2D/$20/       (*         SUB  ES:BYTE PTR [DI],$20 *)
  30.         $EB/$E9) ;             (*         JMP SHORT L1              *)
  31.                                (* L2:                               *)
  32.    END ;